﻿using System;
using System.IO;
using System.ServiceModel;
using System.ServiceModel.Syndication;

namespace NCMIS.ServiceModel.Ra
{
    public partial interface IService
    {
        [IncludeXmlDeclaration]
        [OperationContract(Name = "checkOut")]
        Atom10ItemFormatter CheckOut(string repositoryId, string objectId);

        [IncludeXmlDeclaration]
        [OperationContract(Name = "cancelCheckOut")]
        void CancelCheckOut(string repositoryId, string objectId);

        [IncludeXmlDeclaration]
        [OperationContract(Name = "checkIn")]
        string CheckIn(string repositoryId, string objectId, Stream stream);

        [IncludeXmlDeclaration]
        [OperationContract(Name = "getObjectOfLatestVersion")]
        Atom10ItemFormatter GetObjectOfLatestVersion(string repositoryId, string objectId);

        [IncludeXmlDeclaration]
        [OperationContract(Name = "getPropertiesOfLatestVersion")]
        Atom10ItemFormatter GetPropertiesOfLatestVersion(string repositoryId, string objectId);

        [IncludeXmlDeclaration]
        [OperationContract(Name = "getAllVersions")]
        Atom10FeedFormatter GetAllVersions(string repositoryId, string objectId);
    }
}
